package com.qzsoft.zhjd.machine.modules.machinerealtime.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @ClassName MachineRealtimeEntity
 * @Description 机械设备实时数据
 * @author linhuawei
 * @since 2021-11-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ToString
@TableName("machine_realtime")
public class MachineRealtimeEntity {

    /**
     * 实时数据主键
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 机械主键
     */
    private String machineId;

    /**
     * 机械编号
     */
    private String machineKey;

    /**
     * 机械入网状态
     */
    private String onlineState;

    /**
     * 机械状态
     */
    private String state;

    /**
     * 机械状态持续时间
     */
    private Integer standingTime;

    /**
     * 机械状态上报时间
     */
    private Date stateUpdateTime;

    /**
     * 当前位置
     */
    private String address;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 纬度
     */
    private BigDecimal latitude;

    /**
     * 最后定位时间
     */
    private Date locationTime;

    /**
     * 终端状态
     */
    private String deviceState;

    /**
     * 硬件设备编号
     */
    private String deviceTerminalSn;

    /**
     * 硬件版本型号
     */
    private String deviceModel;

    /**
     * 电池电量
     */
    private BigDecimal deviceBatteryPercent;

    /**
     * 设备绑定时间
     */
    private Date deviceBindTime;

    /**
     * 设备上线时间
     */
    private Date deviceOnlineTime;
    
    /**
     * 当前油量
     */
    private BigDecimal fuelVolume;
    
    /**
     * 当前比例
     */
    private BigDecimal fuelPercentage;
    
    /**
     * 油位上报时间
     */
    private Date fuelReportTime;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NEVER)
    private Date createDate;

}
